In an application server environment, a message broker is a configurable intermediary that can process messages and make high-level decisions about how they should be handled. Message brokers support routing, filtering, transforming, duplicating and various other simple operations on messages. Message brokers are connected to normal processing paths by either being the explicit destination for a message or by intercepting messages intended for some other destination.
What is desirable is a means for taking responsibility off of the carriers and processors. One approach is to put a message broker interception code into the proper processing paths. However, a better approach would be to separate the notion of interception from the description of processing. The only existing standard that is similar to this is JAX-RPC handler chains. However, while JAX-RPC handler chains describe the processing of messages, they do not offer a flexible means of registering message carriers with message processors.